home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / gfx / 3d / irit50src.lha / irit5 / scripts / curvatur.irt < prev    next >
Encoding:
Text File  |  1994-09-04  |  5.1 KB  |  174 lines

  1. #
  2. # The symbolic computation below is faster this way.
  3. #
  4. iritstate( "InterpProd", off );
  5.  
  6. #############################################################################
  7. # Bound on normal curvature in isoparametric directions.
  8. #############################################################################
  9.  
  10. cross = ctlpt( E3, 1.0, 0.0, 0.0 ) +
  11.         ctlpt( E3, 1.0, 0.0, 1.0 );
  12. s = sregion( surfprev( cross ), COL, 0, 1.0 );
  13.  
  14. view( list( s, axes ), on );
  15.  
  16. UCrvtrZXY = scrvtr( s, P3, row );
  17. VCrvtrZXY = scrvtr( s, P3, col );
  18. UCrvtrXYZ = UCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  19. VCrvtrXYZ = VCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  20. color( UCrvtrXYZ, red );
  21. color( VCrvtrXYZ, magenta );
  22.  
  23. view( list( UCrvtrXYZ, VCrvtrXYZ ), off );
  24. pause();
  25.  
  26. #############################################################################
  27.  
  28. cross = ctlpt( E3, 0.5, 0.0, 0.0 ) +
  29.         ctlpt( E3, 0.5, 0.0, 1.0 );
  30. s = sregion( surfprev( cross ), COL, 0, 1.0 );
  31.  
  32. view( list( s, axes ), on );
  33.  
  34. UCrvtrZXY = scrvtr( s, E3, row );
  35. VCrvtrZXY = scrvtr( s, E3, col );
  36. UCrvtrXYZ = UCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  37. VCrvtrXYZ = VCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  38. color( UCrvtrXYZ, red );
  39. color( VCrvtrXYZ, magenta );
  40.  
  41. view( list( UCrvtrXYZ, VCrvtrXYZ ), off );
  42. pause();
  43.  
  44. #############################################################################
  45.  
  46. cross = ctlpt( E3, 0.2, 0.0, 1.0 ) +
  47.         ctlpt( E3, 1.0, 0.0, 1.0 ) +
  48.         ctlpt( E3, 0.2, 0.0, 0.0 );
  49. Con = surfprev( cross );
  50.  
  51. view( list( Con, axes ), on );
  52.  
  53. viewstate("CrsrAprx");
  54. viewstate("CrsrAprx");
  55. viewstate("LessIso");
  56. viewstate("LessIso");
  57.  
  58. UCrvtrZXY = scrvtr( Con, P3, row );
  59. VCrvtrZXY = scrvtr( Con, P3, col );
  60. UCrvtrXYZ = UCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  61. VCrvtrXYZ = VCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.1 ) );
  62. color( UCrvtrXYZ, red );
  63. color( VCrvtrXYZ, magenta );
  64.  
  65. view( list( UCrvtrXYZ, VCrvtrXYZ ), off );
  66. pause();
  67.  
  68. #############################################################################
  69.  
  70. cross = cbspline( 3,
  71.               list( ctlpt( E2,  0.0,  0.0 ),
  72.                  ctlpt( E2,  0.8,  0.0 ),
  73.                 ctlpt( E2,  0.8,  0.2 ),
  74.                 ctlpt( E2,  0.07, 1.4 ),
  75.                 ctlpt( E2, -0.07, 1.4 ),
  76.                 ctlpt( E2, -0.8,  0.2 ),
  77.                 ctlpt( E2, -0.8,  0.0 ),
  78.                 ctlpt( E2,  0.0,  0.0 ) ),
  79.               list( KV_OPEN ) );
  80. cross = coerce( cross, e3 );
  81. s = sFromCrvs( list( cross,
  82.              cross * trans( vector( 0.5, 0, 1 ) ),
  83.              cross * trans( vector( 0, 0, 2 ) ) ), 3 );
  84. view( list( s, axes ), on );
  85.  
  86. UCrvtrZXY = scrvtr( s, E3, row );
  87. VCrvtrZXY = scrvtr( s, E3, col );
  88. UCrvtrXYZ = UCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 10 ) );
  89. VCrvtrXYZ = VCrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.001 ) );
  90. color( UCrvtrXYZ, red );
  91. color( VCrvtrXYZ, magenta );
  92.  
  93. view( list( UCrvtrXYZ, VCrvtrXYZ ), off );
  94. pause();
  95.  
  96. #############################################################################
  97. # Total bound on normal curvature as k1^2 + k2^2
  98. #############################################################################
  99.  
  100. cross = ctlpt( E3, 1.0, 0.0, 0.0 ) +
  101.         ctlpt( E3, 1.0, 0.0, 1.0 );
  102. s = sregion( surfprev( cross ), COL, 0, 1.0 );
  103.  
  104. view( list( s, axes ), on );
  105.  
  106. CrvtrZXY = scrvtr( s, E3, off );
  107. CrvtrXYZ = CrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  108. color( CrvtrXYZ, green );
  109.  
  110. view( CrvtrXYZ, off );
  111. pause();
  112.  
  113. #############################################################################
  114.  
  115. cross = ctlpt( E3, 0.5, 0.0, 0.0 ) +
  116.         ctlpt( E3, 0.5, 0.0, 1.0 );
  117. s = sregion( surfprev( cross ), COL, 0, 1.0 );
  118.  
  119. view( list( s, axes ), on );
  120.  
  121. CrvtrZXY = scrvtr( s, E3, off );
  122. CrvtrXYZ = CrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 1 ) );
  123. color( CrvtrXYZ, green );
  124.  
  125. view( CrvtrXYZ, off );
  126. pause();
  127.  
  128. #############################################################################
  129.  
  130. cross = ctlpt( E3, 0.2, 0.0, 1.0 ) +
  131.         ctlpt( E3, 1.0, 0.0, 1.0 ) +
  132.         ctlpt( E3, 0.2, 0.0, 0.0 );
  133. Con = surfprev( cross );
  134.  
  135. view( list( Con, axes ), on );
  136.  
  137. CrvtrZXY = scrvtr( Con, E3, off );
  138. CrvtrXYZ = CrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.1 ) );
  139. color( CrvtrXYZ, green );
  140.  
  141. view( CrvtrXYZ, off );
  142. pause();
  143.  
  144. #############################################################################
  145.  
  146. cross = cbspline( 3,
  147.               list( ctlpt( E2,  0.0,  0.0 ),
  148.                  ctlpt( E2,  0.8,  0.0 ),
  149.                 ctlpt( E2,  0.8,  0.2 ),
  150.                 ctlpt( E2,  0.07, 1.4 ),
  151.                 ctlpt( E2, -0.07, 1.4 ),
  152.                 ctlpt( E2, -0.8,  0.2 ),
  153.                 ctlpt( E2, -0.8,  0.0 ),
  154.                 ctlpt( E2,  0.0,  0.0 ) ),
  155.               list( KV_OPEN ) );
  156. cross = coerce( cross, e3 );
  157. s = sFromCrvs( list( cross,
  158.              cross * trans( vector( 0.5, 0, 1 ) ),
  159.              cross * trans( vector( 0, 0, 2 ) ) ), 3 );
  160. view( list( s, axes ), on );
  161.  
  162. CrvtrZXY = scrvtr( s, E3, off );
  163. CrvtrXYZ = CrvtrZXY * rotx( -90 ) * roty( -90 ) * scale( vector( 1, 1, 0.001 ) );
  164. color( CrvtrXYZ, green );
  165.  
  166. view( CrvtrXYZ, off );
  167. pause();
  168.  
  169. viewclear();
  170. viewstate("FinrAprx");
  171. viewstate("FinrAprx");
  172. viewstate("MoreIso");
  173. viewstate("MoreIso");
  174.